In digital communication systems, a modulator is often used to convert data to analog signals, which can be transmitted e.g. as radio signals or over a telephone line. They functionally operate to shape a data signal and combine the shaped signal with a carrier to provide a modulated data bearing signal. In some applications the shaping function is provided by a FIR (Finite Impulse Response) filter and the resulting shaping is determined by the transfer function of the FIR. The transfer function of the FIR is embodied in an array of coefficients that are to be applied to the inputted data.
π/4-shift QPSK modulators are known in the art and are used in digital communications systems. In the quaternary phase modulation, the signal transmitted in a time interval can be written as s(t)=A cos(2πfct+θk+φ), where θk denotes the message to be sent in said interval, φ is the carrier phase when t=0 and in the absence of any phase modulation, and θk has eight different values, four at odd times and four at even times, as shown in FIG. 1. In said modulators, the modulated baseband—which, in exponential form, can be written as s(t)=ej(θk+φ) is inputted to a lowpass shaping filter, usually having a symmetric response and typically realized by an FIR digital filter.
In some prior art apparatus, the FIR comprises memory means in which are stored the coefficients aj for each input signal that is received. For each signal, the corresponding coefficients are retrieved from the memory. The sum-of-products defined by the following formula (1) is then calculated, and all the sums-of-products are added to provide an output. The output can then be converted from digital to analog, as required. Such an apparatus, however, would have to carry out many operations in each unit of time and therefore would have to operate very rapidly.
In the FIR digital filter, the input signal is convoluted with the coefficients which define the filter transfer function. For this purpose, each of the inputs has to be multiplied by a respective coefficient, and the resulting sub-products are to be added together to give an output. The resulting sum-of-products can therefore be expressed as:                               V          i                =                                            ∑                              n                -                1                                                    j              =              0                                ⁢                                    a              j                        ⁢                          u                              i                -                j                                                                        (        1        )            where Vi is the sum-of-products, i is the time index, uj are the inputs, aj are the said coefficients, and j is an integer number which has the values 0 to n−1, wherein n is the number of coefficients.
A sum-of-products multiplier, which performs said operation, is known in the art. Some of them use lookup table means to perform equation (1). However, the number of bits per symbol used as an addressing to the table is constant. This solution is simple, but leads to big tables which is significantly reduced by the current invention.
A better solution, to which this invention generally refers, is to provide memory means or Look-Up Tables (LUT) which store the values of the Vi. The access to the table at any given time is made to an address which is a combination of all the symbol values being in a FIFO register at that particular time. FIG. 1 illustrates the typical case in which the I-channel and the Q-channel inputs to the filter have five possible values: ±1, ±0.707, and 0, as read on the x-axis of the figure. As seen in FIG. 1, there are four signals at odd times and four at even times. The numbers in FIG. 1 are examples to the I-channel input values resulting from the π/4 shifted QPSK signal, the Q-channel input will be phase-shifted by π/2. A memory or LUT required for storing the sums of the products Vi of the input signals for the respective coefficients defining the filter transfer function, has a considerable size. Thus, for example, employing 3 bits to represent said five possible values and for a 6-symbols filter span, and four samples per symbol, the size of memory required is 23×6×4=1 M. Of course, the above numbers are only examples intended to illustrate a general phenomenon that is not limited by them. Note that the conventional QPSK case is much easier for handling, since the I signal and the Q signal can each obtain only two values, and thus one bit is sufficient to represent each value.
Efforts have been made in the art to reduce the size of this memory. Thus, Tetsu Sakata et al., “A New Fully-Digitalized π/4-Shift QPSK modulator for Personal Communication Terminals”, IEEE, ICUPC 1993, pp. 926-930 propose a reduction of the size of the memory, based on the following considerations. Eight transmission signal points are to be expressed on the orthogonal coordinates system. The π/4-shift QPSK modulation scheme, as shown in FIG. 1, has four transmission signal points at even times (indicated by squares) and four at odd times (indicated by triangles). The I,Q inputs to the filter, transmitted at even times, have 3 possible values (+1,−1,0) and therefore their amplitude values are described by two bit combinations both in the I-channel and in the Q-channel data. However, the symbols transmitted at odd times have only two possible values (+0.707,−0.707) and a single amplitude, and therefore their amplitude values are described by single bits both in the I-channel and in the Q-channel data. The resulting representation, by two bits and one bit respectively, with reference (as has been noted) to the I-channel is shown in FIG. 1. Correspondingly, two bits are transmitted on the I-channel and the Q-channel at even times and only one bit is transmitted on both channels at odd times. Since, the transmission times shown in FIG. 1 are cyclic, the even times and odd times addresses are, for example: 
This would basically require two separate tables at even and odd times. To overcome this need, in cases when the filter is symmetric in time, the address at odd times can be reversed and the samples can be taken in the reverse order as explained in the above mentioned Tetsu Sakata et al article, in order to use same table at odd even times. As a result, the size of the memory, for 6 symbols filter span and 4 samples per symbol, is reduced to 21.5×6×4=2 K.
Hereinafter reference will be generally made to 4 samples per symbol and a 6-symbols filter span, but this is only done for illustration purposes and is not a limitation, as different numbers of samples or symbols may be used.
While an important reduction in the size of the memory is thus obtained, it would be desirable to obtain a further reduction, thereby reducing the hardware size and the power requirement. It is therefore a purpose of this invention to provide a π/4-shift QPSK modulator which has a lower power consumption and a smaller area than any modulator known in the art.